

var pkgValue = "";
var className = "";
var classindex=0;
var pkgindex=0;
var methodList={};

 function loadMethods(){
	 $("#resultIframe").html("");
	 pkgValue = $('#first').val();
	 className = $('#second').val();
	 classindex = document.getElementById("second").selectedIndex;
//	 if(classindex==1){ 
//		 	 $('#oneKeyTest').css('display','');
//		 }else{
//			 $('#oneKeyTest').css('display','none');
//		 }
	
	 console.log(className+"-----"+classindex);
	 if(classindex==0){						//未选择类或者选择一键测试
			var tb = document.getElementById('tbMain');
			if(tb!=null){
				var rowNum = tb.rows.length;
				for (i = 0; i < rowNum; i++) {
					tb.deleteRow(i);
					rowNum = rowNum - 1;
					i = i - 1;
				}
				$("#methosTable").html("");
			}
//		if(classindex==1){									//选择一键测试
//			 $("#methosTable").css('width','40%') ;
//			 $("#resultIframe").css('width','60%') ;
//			 $("#methosTable").html( "");
//			 var jsonparam ={pkg:pkgValue,type:'getMethodList'};
//			 console.log("------加载包方法------"+pkgValue);
//			 $.ajax({
//					type: "post",                     
//		            dataType: "html",      
//					url : "/Test-plugin/oneKeyTest",
//					data :jsonparam,
//					success : function(data) {
//						var jstr = eval('('+data+')').methodNamesAll; 
//						$("#methosTable").html( "<div class=\"table-body\" align='center'><table  width=\"600\" border=\"1\" cellspacing=\"0\"><thead><tr><th style=' text-align:center;'>方法名</th></tr></thead><tbody id=\"tbMain\"></tbody> </table></div>");
//						console.log('-----加载'+pkgValue+'包内所有方法------'+jstr);
//						for( j = 0;j<jstr.length;j++){
//							createMethodsTable2(jstr[j]);
//						}
//					},
//					error: function() {
//						console.log('——-------fail---------——');
//					}
//				});
//		}
			return;
	 }
	 $("#methosTable").html("");
	 $("#methosTable").css('width','50%') ;
	 $("#resultIframe").css('width','50%') ;
	 var jsonparam ={pkg:pkgValue,classname:className};   //选择类进行调测
	 console.log(jsonparam);
		$.ajax({
			type: "post",                     
            dataType: "html",      
			url : "/Test-plugin/getMethodsList",
			data :jsonparam,
			success : function(data) {
				console.log("——-----success------——"+data);
				var jstr = eval('(' + data + ')'); 
				$("#methosTable").html( "<div class=\"table-body\" align='center'><table    border=\"1\" cellspacing=\"0\"><thead><tr><th style=' text-align:center;'>方法名</th><th style=' text-align:center;'>操作</th></tr></thead><tbody id=\"tbMain\"></tbody> </table></div>" +
						"          <div id= 'paramtitle' ><span  >参数输入</span><span id='oneBtn' onclick='oneBtnTest();'  >一键测试</span> </input></div><div id='paramArea' ><textarea   id = 'params' placeholder='方法单独测试请先点击对应方法得参数按钮，当前为一键测试参数输入'></textarea><div>");
				createMethodsTable(jstr);
				
			},
			error: function() {
				console.log('——-------fail---------——');
			}
		});
	 
 };

 
 function oneKeyTest(){
	 var jsonparam ={pkg:pkgValue,type:'oneKeyTest'};
	 $.ajax({
			type: "post",                     
			dataType: "html",      
			url : "/Test-plugin/oneKeyTest",
			data :jsonparam,
			success : function(data) {
				console.log("——批量测试成功——"+data);
				$("#resultIframe").html("<div  ><textarea style='line-height:1.0;width:100%;height:100%' id = 'resultdatas'></textarea></div>");//<span align='center'>"+data+"</span>
				
				var reg=new RegExp("</br>","g");
				stt= data.replace(reg,"\r\n");
				$("#resultdatas").val(stt);			 
			},
			error: function() {
				console.log('——-------fail---------——');
			}
		});
	 
 };
 
 function oneBtnTest(){
	 event.stopPropagation();
	var params = $('#params').val();
	if(params==null||params.length==0){
		alert('请按要求输入参数！');
		return;
	}
	try{
		var jsonstr1= JSON.parse(params).param;
		jsonstr1 =  eval(jsonstr1);
	}catch(e){
		alert('参数解析失败，请输入正确格式参数！');
		return;
	}

	
	 var jsonparam ={pkg:pkgValue,type:'oneBtnTest',classname:className,params:params};
	 $('#resultIframe').html("<div  style='margin-top:30%'><img src='./img/loadding.gif' style='width:40px;height:40px' /></div>");
	 $.ajax({
			type: "post",                     
			dataType: "html",      
			url : "/Test-plugin/oneKeyTest",
			data :jsonparam,
			success : function(data) {
				console.log("——批量测试成功——"+data);
				$("#resultIframe").html("<div  ><textarea style='line-height:1.7;width:100%;height:100%' id = 'resultdatas'></textarea></div>");//<span align='center'>"+data+"</span>
				
				var jstr = eval('('+data+')').data;
				var result = "";
				for(var i=0;i<jsonstr1.length;i++){
					for(var key in jsonstr1[i]){

						result += '方法：'+key+'\r\n'+ '结果：'+JSON.stringify(jstr[i])+ "\r\n\r\n";
					}
				}
				$("#resultdatas").val(result);			 
			},
			error: function() {
				console.log('——-------fail---------——');
			}
		});
	 
 };
 
 
 
	$(document).ready(function(){ //加载类路径和包名的下拉框
		$("#selectPath").html("<select id='first' onChange='change()' style='height:25px;width:150px'>" +
					" <option selected='selected'   >选择包</option>" +
					" <option   value = 'accessservices' >接入功能服务包</option>" +
					" <option value = 'transferservices' >传送功能服务包</option>" +
					" <option value = 'lanservices' >联网功能服务包</option>" +
					" <option value = 'addressservices' >地址功能服务包</option>" +
					" <option value = 'voipservices'>VoIP 功能服务包</option>" +
					" <option value = 'commservices' >设备通用功能服务包</option>" +
				"</select>" +
				"<select  style='height:25px;width:150px'  id='second' onChange='loadMethods()'>" +
					"<option selected='selected'>请先选择包</option>" +
				"</select>" +
				"&nbsp;&nbsp;<button style='background:#0095D0;display:none'  id='oneKeyTest' onclick='oneKeyTest();'  type='button' value=''>一键检测</button>");
		$("#resultIframe").html( "");
	});


	function change()
	{
		$("#resultIframe").html("");
		var tb = document.getElementById('tbMain');
		if(tb!=null){
			var rowNum = tb.rows.length;
			for (i = 0; i < rowNum; i++) {
				tb.deleteRow(i);
				rowNum = rowNum - 1;
				i = i - 1;
			}
			$("#methosTable").html("");
		}

		
		var objSelectet = document.getElementById("first");  
		pkgValue = objSelectet.value; 
		pkgindex = objSelectet.selectedIndex;
		console.log(pkgValue+"-----"+pkgindex);
	   var x = document.getElementById('first');
	   var y = document.getElementById('second');
	   y.options.length = 0; // 清除second下拉框的所有内容
	   
	   if(x.selectedIndex == 0)
	   {
		   y.options.add(new Option('请先选择包',false, true));
			 
	   }
	   if(x.selectedIndex == 1)
	   {
		    y.options.add(new Option('请选择',false, true));
//		    y.options.add(new Option('一键检测', 'oneBtnTest'));
			y.options.add(new Option('WAN口配置服务类', 'WanConfigService'));
			y.options.add(new Option('接入信息查询服务类', 'AccessInfoQueryService'));   
			y.options.add(new Option('Ping诊断服务类', 'IPPingDiagnosticsService'));   
			y.options.add(new Option('Traceroute诊断服务类', 'TraceRouteDiagnosticsService'));  
	   }
	 
	   if(x.selectedIndex == 2)
	   {
		    y.options.add(new Option('请选择',false, true));
//		    y.options.add(new Option('一键检测', 'oneBtnTest'));
			y.options.add(new Option('数据转发信息查询服务类', 'TransferQueryService'));
			y.options.add(new Option('VLAN绑定设置服务类', 'VLANBindConfigService'));   
			y.options.add(new Option('静态路由设置服务类', 'StaticLayer3ForwardingConfigService'));   
			y.options.add(new Option('数据流量监控服务类', 'TrafficMonitoringConfigServie'));
			y.options.add(new Option('数据流QoS服务类', 'TrafficQoSService'));  
			y.options.add(new Option('数据流重定向服务类', 'TrafficForwardService'));
			y.options.add(new Option('数据流镜像服务类', 'TrafficMirrorService'));   
			y.options.add(new Option('数据流精细处理服务类', 'TrafficDetailProcessService'));   
			y.options.add(new Option('L2TP VPN服务类', 'L2TPVPNService'));  
	   }
	   if(x.selectedIndex == 3)
	   {
		   y.options.add(new Option('请选择',false, true));
//		   y.options.add(new Option('一键检测', 'oneBtnTest'));
			y.options.add(new Option('家庭网络信息查询服务类', 'LANHostsInfoQueryService'));
			y.options.add(new Option('家庭网络命名服务类', 'LanNetworkNameConfigService'));   
			y.options.add(new Option('下挂设备限速服务类', 'LanHostSpeedLimitService'));   
			y.options.add(new Option('下挂设备实时速率查询服务类', 'LanHostSpeedQueryService'));  
			y.options.add(new Option('下挂设备访问控制服务类', 'LanNetworkAccessConfigService'));
			y.options.add(new Option('WLAN信息查询服务类', 'WlanQueryService'));   
			y.options.add(new Option('WLAN保密信息查询服务类', 'WlanSecretQueryService'));   
			y.options.add(new Option('WLAN配置服务类', 'WlanConfigService'));  
			y.options.add(new Option('以太网端口信息查询服务类', 'EthQueryService'));
			y.options.add(new Option('以太网端口设置服务类', 'EthConfigService'));   
	   }
	   if(x.selectedIndex == 4)
	   {
		   y.options.add(new Option('请选择',false, true));
//		   y.options.add(new Option('一键检测', 'oneBtnTest'));
			y.options.add(new Option('本地IP信息查询服务类', 'LANIPInfoQueryService'));
			y.options.add(new Option('本地IP配置服务类', 'LANIPConfigService'));   
			y.options.add(new Option('端口映射信息查询服务类', 'PortMappingQueryService'));   
			y.options.add(new Option('端口映射配置服务类', 'PortMappingConfigService'));  
	   }
	   if(x.selectedIndex == 5)
	   {
		   y.options.add(new Option('请选择',false, true));
//		   y.options.add(new Option('一键检测', 'oneBtnTest'));
			y.options.add(new Option('VoIP信息查询服务类', 'VoIPInfoQueryService'));
			y.options.add(new Option('VoIP信息订阅服务类', 'VoIPInfoSubscribeService'));   
	   }
	   if(x.selectedIndex == 6)
	   {
		   y.options.add(new Option('请选择',false, true));
//		   y.options.add(new Option('一键检测', 'oneBtnTest'));
			y.options.add(new Option('网关基础信息查询服务类', 'DeviceInfoQueryService'));
			y.options.add(new Option('网关保密信息查询服务类', 'DeviceSecretInfoQueryService'));   
			y.options.add(new Option('网关系统服务权限查询服务类', 'DeviceAccessRightQueryService'));   
			y.options.add(new Option('网关系统服务权限设置服务类', 'DeviceAccessRightConfigService'));  
			y.options.add(new Option('设备重启服务类', 'DeviceRsetService'));   
			y.options.add(new Option('USB接口服务类', 'UsbService'));  
			y.options.add(new Option('网关配置服务类', 'DeviceConfigService'));   
			y.options.add(new Option('网关注册服务类', 'RegistrationService'));  
			
	   }
	 
	 
	}

	
	function createDataRow2(h) {
		var row = document.createElement('tr'); // 创建行
		var idCell = document.createElement('td'); // 创建第一列id
		idCell.innerHTML = h; // 填充数据
		row.appendChild(idCell); // 加入行 ，下面类似
		return row; // 返回tr数据
	}

	function createDataRow(h) {
		var row = document.createElement('tr'); // 创建行

		var idCell = document.createElement('td'); // 创建第一列id
		idCell.innerHTML = h; // 填充数据
		row.appendChild(idCell); // 加入行 ，下面类似

		var delCell = document.createElement('td');// 创建第四列，操作列
		row.appendChild(delCell);
		var btnDel = document.createElement('input'); // 创建一个input控件
		btnDel.setAttribute('type', 'checkbox'); // type="button"
		btnDel.setAttribute('id', 'apibox');
		btnDel.setAttribute('class', h);
		btnDel.setAttribute('value', "wanIndex:1");

		var runbtn = document.createElement('input'); // 创建一个input控件
		runbtn.setAttribute('type', 'button'); // type="button"
		runbtn.setAttribute('id', 'run');
		runbtn.setAttribute('name', h);
		runbtn.setAttribute('value', "运行");
		runbtn.setAttribute('onclick', "runOne(this);");

		var parambtn = document.createElement('input'); // 创建一个input控件
		parambtn.setAttribute('type', 'button'); // type="button"
		parambtn.setAttribute('id',h);
		parambtn.setAttribute('class', "inputparam");
		parambtn.setAttribute('value', "参数");
//		parambtn.setAttribute('onclick', "inputParam(this);");
		 
		
		delCell.appendChild(btnDel); // 把删除按钮加入td，
		delCell.appendChild(parambtn);
		delCell.appendChild(runbtn);
		
		return row; // 返回tr数据
	};

	function createMethodsTable(jsonstr) {
		var tb = document.getElementById('tbMain');
		var rowNum = tb.rows.length;
		for (i = 0; i < rowNum; i++) {
			tb.deleteRow(i);
			rowNum = rowNum - 1;
			i = i - 1;
		}

		var tbody = document.getElementById('tbMain');
		try {
			var jstr = eval(jsonstr).methodNames;
		} catch (e) {
			alert("数据解析错误!");
			return;
		}

		for (var i = 0; i < jstr.length; i++) { // 遍历一下json数据
			var trow = createDataRow(jstr[i]); // 定义一个方法,返回tr数据
			tbody.appendChild(trow);
		}

	};
	
	function createMethodsTable2(jsonstr) {

		var tbody = document.getElementById('tbMain');
		try {
			var jstr = eval(jsonstr);
		} catch (e) {
			alert("数据解析错误!");
			return;
		}

		for (var i = 0; i < jstr.length; i++) { // 遍历一下json数据
			var trow = createDataRow2(jstr[i]); // 定义一个方法,返回tr数据
			tbody.appendChild(trow);
		}

	};


function inputParam(h){
	
	var idd = $(h).attr('id');
	$("#resultIframe").html("<div ><script src='./js/table.js'></script> <table class='table table-bordered table-hover'  ><tr class='info'><td>参数名</td><td>值</td><td>操作</td></tr><tr><td colspan='5' class='danger'><button class='btn btn-primary btn-sm' id = 'btn-sm' >增加</button></td></tr></table>	</div>");
	
};




function runOne(h) {
	var method = $(h).attr("name");
	var param = $('.'+method).val();
	console.log(method+"-----------"+param);
	var jsonparam ={methods:method,params:param,classname:className,pkgvalue:pkgValue};
	if (method.length != 0) {
		$.ajax({
			type: "post",                     
            dataType: "html",      
			url : "/Test-plugin/pluginApiTest",
			data :jsonparam,
			success : function(data) {
				console.log("——批量测试成功——"+data);
				$("#resultIframe").html("<div  ><textarea style='line-height:1.0;width:100%;height:100%' id = 'resultdatas'></textarea></div>");//<span align='center'>"+data+"</span>
				
				var reg=new RegExp("</br>","g");
				stt= data.replace(reg,"\r\n");
				$("#resultdatas").val(stt);
//				showProc();
				$('#resStatus').html("");
			},
			error:function (data){
				console.log("——异步请求错误——");
			}
		});
	} else {
		console.log("——参数错误——");
		return;
	}
}





